//
//  JwTabBarController.h
//  JwPack
//
//  Created by 陈警卫 on 2022/8/29.
//

#import <UIKit/UIKit.h>

#import "JwMacro.h"
#import "JwCore.h"
#import "JwCate.h"
#import "JwSingle.h"
#import "JwExten.h"

#import "JwFrameTool.h"
#import "JwNavigationController.h"

NS_ASSUME_NONNULL_BEGIN

@interface JwTabBarModel : NSObject

@property (nonatomic, strong) UIViewController *vc;
@property (nonatomic, strong) NSString *tabImageName;
@property (nonatomic, strong, nullable) NSString *tabSelImageName;
@property (nonatomic, strong) NSString *title; // (多语言时为key)

// 是否使用全局变量颜色渲染 默认NO
@property (nonatomic, assign) BOOL isUseGVColorRender;

+ (JwTabBarModel *)modelWithVC:(UIViewController *)vc
                  tabImageName:(NSString *)tabImageName
               tabSelImageName:(nullable NSString *)tabSelImageName
                         title:(NSString *)title;

+ (JwTabBarModel *)modelWithVC:(UIViewController *)vc
                  tabImageName:(NSString *)tabImageName
                         title:(NSString *)title;

@end

@interface JwTabBarNavModel : NSObject

@property (nonatomic, strong) JwNavigationController *nc;
@property (nonatomic, strong) JwTabBarModel *tabarModel;

@end

@interface JwTabBarController : UITabBarController

@property (nonatomic, strong) UIColor *jw_tabTintColor;
@property (nonatomic, strong) UIColor *jw_tabSelColor;
@property (nonatomic, strong) UIColor *jw_tabUnSelColor;

/// 添加子控制器
- (void)setupViewControllers:(NSArray *)tabBarModels;

/// MARK: 全局项目刷新回调
/// 解决 jw_skinerBlockAction 父类子类实现冲突
- (void)jw_skinerBlockAction:(id)sender;

- (JwNavigationController *)navWithRootVc:(UIViewController *)vc
                                    title:(NSString *)title
                             tabImageName:(NSString *)tabImageName
                          tabSelImageName:(NSString *)tabSelImageName
                              colorRender:(BOOL)colorRender;

- (void)setupTabBarAppearance;

- (void)setupTabBarAppearanceWithTintColor:(UIColor *)tintColor selColor:(UIColor *)selColor unSelColor:(UIColor *)unSelColor;


@end

NS_ASSUME_NONNULL_END
